home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / ARMLINUX / MAIL / 9707 / 000037_owner-linux-arm…r.rutgers.edu _Fri Jul 4 02:05:27 1997.msg < prev    next >
Internet Message Format  |  1997-11-30  |  4KB

  1. Return-Path: <owner-linux-arm-outgoing@vger.rutgers.edu>
  2. Received: from nic.funet.fi (nic.funet.fi [128.214.248.6]) by odie.barnet.ac.uk (8.8.2/8.8.0) with ESMTP id CAA30401 for <willy@odie.fluff.org>; Fri, 4 Jul 1997 02:05:26 +0100
  3. Received: from vger.rutgers.edu ([128.6.190.2] EHLO vger.rutgers.edu ident: root [port 12145]) by nic.funet.fi with ESMTP id <15468-27117>; Fri, 4 Jul 1997 04:05:16 +0300
  4. Received: by vger.rutgers.edu id <1003689-30852>; Thu, 3 Jul 1997 21:02:06 -0400
  5. Received: from IDENT-NOT-QUERIED@tulpi.interconnect.com.au (port 1167 [192.189.54.18]) by vger.rutgers.edu with ESMTP id <1003691-30852>; Thu, 3 Jul 1997 21:01:50 -0400
  6. Received: from home.cvs.com.au (acc3-ppp26.mel.interconnect.com.au [210.8.0.26]) by tulpi.interconnect.com.au with SMTP id LAA26703
  7.   (8.8.5/IDA-1.6 for <linux-arm@vger.rutgers.edu>); Fri, 4 Jul 1997 11:04:28 +1000 (EST)
  8. Message-ID: <33BCBC77.3BB40D5F@cvs.com.au>
  9. Date:     Fri, 04 Jul 1997 19:05:27 +1000
  10. From: Charles Esson <charlese@cvs.com.au>
  11. Organization: Colour Vision Systems
  12. X-Mailer: Mozilla 3.01GoldC-Caldera (X11; I; Linux 2.0.29 i586)
  13. MIME-Version: 1.0
  14. To: linux-arm@vger.rutgers.edu
  15. Subject: Re: Re ELF
  16. References: <358.199707031859@raistlin.armlinux.org>
  17. Content-Type: text/plain; charset=us-ascii
  18. Content-Transfer-Encoding: 7bit
  19. Sender: owner-linux-arm@vger.rutgers.edu
  20. Precedence: bulk
  21. Status: RO
  22.  
  23. rmk92@ecs.soton.ac.uk wrote:
  24. > Charles Esson writes:
  25. > > Would this only occure if the same physical address was mapped into
  26. > > different virtual addresses with write enabled.        I see it as a
  27. > > reasonable restiction that virtual be mapped to the real on a one to one
  28. > > basis when write is enabled.
  29. > But the cache works on VIRTUAL ADDRESSES NOT PHYSICAL!  If the processor
  30. > finds a cache entry for the virtual (program) address, then it *will*
  31. > use it!  It doesn't care about the mapping.  The reason for this is that
  32. > the processor/cache/mmu work as follows:
  33. >         Processor wants to read a word.
  34. >          - cache gets searched (always, whether caching is enabled or not).
  35. >                 if entry is found, use it.
  36. >          - if no entry is found, use the mmu to obtain data.  If caching
  37. >                 is enabled, insert this data into the cache.
  38.  
  39. Yes there is a problem. When you switch task there is no rule which says
  40. that you have to use a different virtual address space if you live with
  41. this restriction then I can't see why the cache will not always reflect
  42. reality. But you do need to alter the read write status of different
  43. areas. It would seem a flush of the tags invalides the data in the cache
  44. so one has to write back the data in the cache before doing such an
  45. operation. To quote the manual:
  46. " a flush whole must be preceeded by a sequence of loads to cause the
  47. cache to write back dirty entries".
  48.  
  49. If this is the case, I consider all is lost. Up to now I have lived with
  50. a operating system that works with no MMU. I don't see memory
  51. fragmentaiton as a problem, being able to allocate required memory out
  52. of a virtual memory space instead of a real space would be a dream. But
  53. I want to have tasks restricted to there own space, finding bugs that
  54. write into someone elses space can be a problem.
  55.  
  56. I don't care what anyone says, 16k flush is not the go for real time
  57. work. Look at the code suggested, it's a load, a test, and a branch, I'm
  58. no expert on the timing but my quess is 5 cycles for the memory read (
  59. you have to move from CCLK to MCLK ), 1 for the test and two for the
  60. branch thats 112000 cycles we have 200,000,000 of them a second. Thats
  61. 0.5 msec. Even under linux task switches are common events, in a real
  62. time system they are a dime a dozen. 
  63.  
  64. I am depressed.
  65.  
  66.  
  67. And